
    Singleton.implementStatic
    (
        new function () 
        {
            var INSTANCE;
            
            this.constructor.implement
            (
                function getInstance () 
                {
                    if (this.is(INSTANCE))
                        return INSTANCE;
                        
                    return INSTANCE= new this;
                }
                
            ,   function hasInstance () 
                {
                    return this.is(INSTANCE);
                }
            );   
        }
    );
    
    function Singleton () 
    {
        if (this.constructor.hasInstance())
            throw new Error('SingletonInstantiationError');
    };
